During my formation in Data science at the campus numérique in the Alps, we had the opportunity to work on the trees’ database of our wonderful city.

# import des packages nécessaires
import pandas as pd
import folium
#import des données
df = pd.read_csv('tree/Stats_by_tree.csv', index_col = 0)
df.head(5)
## moyenne minimum ... count somme
## (45.1543159441061, 5.76034690089422) 4650.543411 2 ... 31243.0 145297410
## (45.154046459904, 5.75982646464411) 4621.251277 10 ... 31243.0 144382237
## (45.1540202490699, 5.75998073144869) 4636.225840 11 ... 31243.0 144850087
## (45.1538601663191, 5.76005703012677) 4652.513137 7 ... 31243.0 145358951
## (45.1539221005346, 5.76002027929244) 4645.579552 7 ... 31243.0 145142325
##
## [5 rows x 5 columns]
# Supposons que la proximité se mesure avec la distance moyenne aux autres arbres
prox = df['moyenne'].min()
print('L\'arbre le moins isolé est en moyenne à', round(prox), 'mètres des autres arbres.')
# Supposons que la proximité se mesure avec la distance maximale à un autre arbre
## L'arbre le moins isolé est en moyenne à 1792 mètres des autres arbres.
prox2 = df['maximum'].min()
print('L\'arbre le moins isolé est au maximum à', round(prox2), 'mètres des autres arbres.')
## L'arbre le moins isolé est au maximum à 4587 mètres des autres arbres.
# Coordonnées des deux arbres les plus éloignés l'un de l'autre
max1 = df['maximum'].nlargest(2).index[0]
max2 = df['maximum'].nlargest(2).index[1]
# Beaucoup d'arbres on un voisin à 1 mètres d'eux, on ne va donc pas récupérer leurs coordonnées ,
# Coordonnées de l'arbre le plus isolé ,
iso_c = df['minimum'].idxmax()
# Coordonnées des arbres les moins isolés selon les deux approches ,
prox_c = df['moyenne'].idxmin()
prox2_c = df['maximum'].idxmin()
Sur la map ci-dessous :
df['coord'] = df.index
map_gre = folium.Map(location = [45.18, 5.72],zoom_start= 12)
for i in range(len(df)) :
folium.CircleMarker(eval(df.coord[i]),radius = 1,color = 'green').add_to(map_gre)
folium.CircleMarker(eval(max1),radius = 3,color = 'red').add_to(map_gre)
folium.CircleMarker(eval(max2),radius = 3,color = 'red').add_to(map_gre)
folium.CircleMarker(eval(iso_c),radius = 3,color = 'black').add_to(map_gre)
folium.CircleMarker(eval(prox_c),radius = 3,color = 'blue').add_to(map_gre)
folium.CircleMarker(eval(prox2_c),radius = 3,color = 'purple').add_to(map_gre)
map_gre